一、两种互斥机制
Java 提供了两种互斥锁用来解决在共享资源时存在的并发问题。
一种方式是提供synchronized 关键字,当任务要执行被synchronized 关键字保护的代码片段的时候,它会检查所可用,然后获取锁,执行代码,释放锁。
另一种方式是显式的使用Lock 对象,在Java SE5 中的java.util.concurrent.locks 类库中定义了这个对象,Lock 对象必须被显式的创建,锁定和释放。下面通过一个例子来体验一下两种锁机制有什么不同:创建三个线程并发访问任务,在任务中输出99-1的数字,为了达到效果在输出之前让线程睡了100ms。
synchronized 同步代码方式:
public class SynchronizedTest {
public static void main(String[] args) {
LockDemo2 demo2 = new LockDemo2();